/**2017-07-17   公共汽车  棋盘动归

【输入】第一行 n,m,k    n行m列   一共k个有乘客的路口
        以下k行是有乘客的路口坐标和乘客数量
【输出】接到的最多乘客数。
【样例】输入    8 7 11
                4 3 4
                6 2 4
                2 3 2
                5 6 1
                2 5 2
                1 5 5
                2 1 1
                3 1 1
                7 7 1
                7 4 2
                8 6 2
        输出    11
**/
#include<iostream>
#include<cstring>
using namespace std;
int f[101][101],n,m,k;

int main(){
	cin>>n>>m>>k;
	int a,b,c;
	for(int i=1;i<=k;i++){
		cin>>a>>b>>c;
		f[a][b]=c;
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			f[i][j]=max(f[i-1][j],f[i][j-1])+f[i][j];
		}
	}
	cout<<f[n][m]<<endl;
	return 0;
	
}